﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.Security;
using System.Web.UI.WebControls;
using BusinessLogicLayer;
using DataAccessLayer;

namespace ChamCong.Admin
{
    public partial class ChiTietTK : BasePage
    {
        public static int qryMaNV;
        public static int iSessionMaNV;
        bool flag;
        List<int> lstRole;
        QuanLyPhanQuyenBLL pqBLL = new QuanLyPhanQuyenBLL();
        PhongBanBLL pbBLL = new PhongBanBLL();
        NhanVienBLL NVBLL = new NhanVienBLL();
        NHANVIEN NV = new NHANVIEN();
        CT_DangNhapBLL tkBLL = new CT_DangNhapBLL();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["manv"] != null)
            {
                iSessionMaNV = Convert.ToInt32(Session["MaNV"]);
                btnSua.Visible = true;
                qryMaNV = Convert.ToInt32(Request.QueryString["manv"]);
                lstRole = pqBLL.LayMaRoleTuNV(iSessionMaNV);
                layDuLieuNhanVien();
            }
            else
            {
                btnThem.Visible = true;
            }

        }
        public void layDuLieuNhanVien()
        {
            
            if (NVBLL.LayNhanVien(qryMaNV) != null)
            {
                if (lstRole.Contains(2))
                {
                    if (NVBLL.LayMaPBTuNV(iSessionMaNV) == NVBLL.LayNhanVien(qryMaNV).MaPB)
                    {
                        NV = NVBLL.LayNhanVien(qryMaNV);
                    }
                    else
                    {
                        //sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Không tìm thấy thông tin nhân viên!");
                    }
                }

                if (lstRole.Contains(1) || lstRole.Contains(4) || lstRole.Contains(5))
                {
                    NV = NVBLL.LayNhanVien(qryMaNV);
                    if (tkBLL.KiemTraTrangThai(qryMaNV) == true)
                    {
                        btnLock.Visible = true;
                    }
                    else
                    {
                        btnActive.Visible = true;
                    }
                }
                
                else
                {
                    NV = NVBLL.LayNhanVien(iSessionMaNV);
                }
                lbMaNV.Text = NV.MaNV.ToString();
                lbHoTen.Text = NV.HoTen;

                //lấy danh sách Phòng Ban.
                //NhanVienBLL nvBLL = new NhanVienBLL();
                lbPhongBan.Text = lbPhongBan.Text + NVBLL.LayPBTuNV(NV.MaNV) + "</br>";

                ChucVuBLL CVBLL = new ChucVuBLL();
                List<string> cv = CVBLL.LayCVTuNV(NV.MaNV);
                foreach (var i in cv)
                {
                    lbChucVu.Text = lbChucVu.Text + i.ToString() + "</br>";
                }

                //Load Tài Khoản
                
                try
                {
                    CT_DANGNHAP tk = tkBLL.LayTKTuNV(NV.MaNV);
                    txtTenTK.Text = tk.TenDangNhap.Trim();
                }
                catch
                {
                    //báo tài khoản này chưa tồn tại!
                    flag = true;
                }
            }
            else
            {
                sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Nhân viên không tồn tại!");
            }
        }
        protected void btnSua_Click(object sender, EventArgs e)
        {
            CT_DANGNHAP tk = new CT_DANGNHAP();
            if (lstRole.Contains(1))
            {
                txtTenTK.Enabled = true;
                tk.MaNV = qryMaNV;
                tk.TenDangNhap = txtTenTK.Text;
                
            }
            else
            {
                tk.MaNV = iSessionMaNV;
                tk.TenDangNhap = tkBLL.LayTKTuNV(iSessionMaNV).TenDangNhap;
            }
            
            
            if (txtMatKhau1.Text.Trim() != txtMatKhau2.Text.Trim())
            {
                sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Mật khẩu không trùng khớp!");
            }
            else
            {
                tk.MatKhau = MaHoa(txtMatKhau2.Text.Trim());
                CT_DangNhapBLL ctDNBLL = new CT_DangNhapBLL();
                if (ctDNBLL.ktTenDangNhapTonTai(tk.TenDangNhap, qryMaNV) != null)
                {
                    ctDNBLL.SuaTaiKhoan(tk);
                    sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Đã lưu thông tin tài khoản: " + tk.TenDangNhap);
                }
                else
                {
                    sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Tài khoản " + ctDNBLL.ktTenDangNhapTonTai(tk.TenDangNhap, qryMaNV) + " không tồn tại");
                }
            }
        }

        public string MaHoa(string mk)
        {
            return FormsAuthentication.HashPasswordForStoringInConfigFile(mk.Trim(), "MD5").ToUpper();
        }

        // Hien tai dang vo hieu hoa chuc nang them tai khoan
        protected void btnThem_Click(object sender, EventArgs e)
        {
            CT_DANGNHAP tk = new CT_DANGNHAP();
            tk.TenDangNhap = txtTenTK.Text.Trim();

            if (txtMatKhau1.Text != txtMatKhau2.Text)
            {
                sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Mật khẩu không trùng khớp!");
            }
            else
            {
                tk.MatKhau = MaHoa(txtMatKhau2.Text.Trim());
                CT_DangNhapBLL ctDNBLL = new CT_DangNhapBLL();
                if (ctDNBLL.ktTenDangNhapTonTai(tk.TenDangNhap, qryMaNV) != null)
                {
                    sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", ctDNBLL.ktTenDangNhapTonTai(tk.TenDangNhap, qryMaNV) + " đã tồn tại!");
                }
                else
                {
                    if (flag == true)// nếu tài khoản không tồn tại thì thêm vào
                    {
                        //ctDNBLL.SuaTaiKhoan(tk);
                        ctDNBLL.ThemTaiKhoan(tk);
                        sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Lưu thông tin thành công");
                    }
                }
            }
        }

        protected void btnLock_Click(object sender, EventArgs e)
        {
            try
            {
                CT_DANGNHAP dn = new CT_DANGNHAP();
                dn.MaNV = qryMaNV;
                dn.Active = 0;
                tkBLL.SuaTaiKhoan(dn);
                sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Tài khoản đã bị khóa!");
            }
            catch
            {
                sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Không thể khóa!");
            }
        }

        protected void btnActive_Click(object sender, EventArgs e)
        {
            try
            {
                CT_DANGNHAP dn = new CT_DANGNHAP();
                dn.MaNV = qryMaNV;
                dn.Active = 1;
                tkBLL.SuaTaiKhoan(dn);
                sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Success, "Thông báo", "Tài khoản đã mở lại!");
            }
            catch
            {
                sbcMsgBox4.SetTitleText(SBWebControls.sbcMsgBox.eMessageType.Error, "Thông báo", "Không thể mở lại tài khoản!");
            }
        }
    }
}